package com.gcxy.service;

import com.gcxy.entity.UserRole;
import com.baomidou.mybatisplus.extension.service.IService;
import com.gcxy.vo.role.RoleVO;

import java.util.List;

/**
 * <p>
 * 用户角色关联表 服务类
 * </p>
 *
 * @author Huang先森
 * @since 2024-07-22
 */
public interface UserRoleService extends IService<UserRole> {

    /**
     * 根据用户id删除用户角色关联关系
     *
     * @param userId
     */
    void removeByUserId(Integer userId);

    /**
     * 根据角色姓名获取用户信息
     *
     * @param roleName
     * @return
     */
    List<Integer> getUserByRoleName(String roleName);

    /**
     * 根据角色id获取用户角色关联关系
     *
     * @param roleIds
     * @return
     */
    List<UserRole> getByRoleIds(List<Integer> roleIds);

    /**
     * 根据用户id获取角色信息
     *
     * @param userId
     * @return
     */
    List<RoleVO> getRoleByUserId(Integer userId);

    /**
     * 根据角色id获取对应关联所有用户信息
     *
     * @param roleId
     * @return
     */
    List<Integer> getAllUserByRoleId(Integer roleId);

    /**
     * 插入用户角色关联关系
     *
     * @param userId
     * @param roleId
     * @return
     */
    boolean insertUserRole(Integer userId, Integer roleId);
}
